The Internet is becoming a primary method for distributing media content (e.g., video and audio or audio) and other information to end users. It is currently possible to download music, video, games, and other media information to computers, cell phones, and virtually any network capable device. The percentage of people accessing the Internet for media content is growing rapidly. The quality of the viewer experience is a key barrier to the growth of video viewing on-line. Consumer expectations for online video are set by their television and movie viewing experiences.
Audience numbers for streaming video on the web are rapidly growing, and there are a growing interest and demand for viewing video on the Internet. Streaming of data files or “streaming media” refers to technology that delivers sequential media content at a rate sufficient to present the media content to a user at the originally anticipated playback speed without significant interruption. Unlike downloaded data of a media file, streamed data may be stored in memory until the data is played back and then subsequently deleted after a specified amount of time has passed.
The process for preparing media content for adaptive streaming typically involves taking a source content file, such as a movie, or a source content feed (e.g., a broadcast signal), and splitting it into temporal chunks or slices, and encoding each slice at a different quality level. Typically, the different quality levels are achieved by encoding the source media content at different bit rates according to encoding profiles. During playback, and as network conditions fluctuate, a consuming application selects a slice at one of the different quality levels that is best suited for the present network throughput, and the consuming applications adjusts the quality up or down as available bandwidth increases or decreases by selecting subsequent slices at the appropriate quality levels.
Streaming media content over the Internet has some challenges, as compared to regular broadcasts over the air, satellite, or cable. Although the adaptive streaming approach provides many advantages, one major disadvantage is that each temporal slice must be encoded multiple times, often a dozen or more, depending on the desired number of quality levels and playback devices or platforms. Also, the computational resources required to encode into the multiple formats is often quite large, as is the necessary bandwidth required to move the encoded slices to their location on a web server from which they are served during playback.